home *** CD-ROM | disk | FTP | other *** search
/ Shareware Super Platinum 8 / Shareware Super Platinum 8.iso / mac / DATABASE / OBJ1_2.ZIP;1 / C_MASK.PRG < prev    next >
Encoding:
Text File  |  1993-01-21  |  5.0 KB  |  158 lines

  1. //*****************************************************************************
  2. // C_Mask.prg
  3. // Mask class for OBJECT v2.03
  4. // Copyright (c) 1991, JHK, JHK-Software, Piestany
  5. // Please compile with: /N/M/W/A
  6. //-----------------------------------------------------------------------------
  7.  
  8. #include "Object.ch"
  9.  
  10. create class Mask from View
  11.   export:
  12.   var Initialized  //false
  13.   var SayData      //{{Row,Col,Text},...}
  14.   var GetData      //{{Row,Col},...}
  15.   method New=MaskNew              //o:New() --> self
  16.   method CreateObj=MaskCreateObj  //o:CreateObj() --> new object of this class
  17.   method Copy=MaskCopy            //o:Copy() --> self
  18.   method AddSay=MaskAddSay        //o:AddSay(R,C,Text)
  19.   method AddBlock=MaskAddBlock    //o:AddBlock(R,C,cShortName,cVarName,bBlock,bDoGet,cPicture,bWhen,bValid)
  20.   method AddMemo=MaskAddMemo      //o:AddMemo(R,C,cShortName,cField,bWhen,bValid,nRowSize,nColSize)
  21.   method AddField=MaskAddField    //o:AddField(R,C,cShortName,cField,cPicture,bWhen,bValid)
  22.   method PostInit=MaskPostInit    //o:PostInit()
  23.   method MaskPaint=MaskMaskPaint  //definition of abstract class: o:MaskPaint()
  24.   endclass
  25.  
  26.  
  27. //*****************************************************************************
  28. // Mask:New() --> self
  29. // default values for this object
  30. //
  31. constructor MaskNew()
  32.   ::Initialized:=false
  33.   ::MaskFeature:=true        //Important! See also the Browse class.
  34.   ::FormActive:=true         //... 
  35.   ::SayData:={}              //{{Row,Col,Text},...}
  36.   ::GetData:={}              //{{Row,Col},...}
  37.   return(self)
  38.  
  39.  
  40. //*****************************************************************************
  41. // Mask:CreateObj() --> self
  42. // default values for this object
  43. //
  44. method function MaskCreateObj()
  45.   return(object of Mask)
  46.  
  47.  
  48. //*****************************************************************************
  49. // Mask:Copy() --> self
  50. // return copy of this object
  51. //
  52. method function MaskCopy()
  53.   local o:=::super(View):Copy()
  54.   o:Initialized := ::Initialized
  55.   o:MaskFeature := ::MaskFeature
  56.   o:SayData     := AClone(::SayData)
  57.   o:GetData     := AClone(::GetData)
  58.   return(o)
  59.  
  60.  
  61. //*****************************************************************************
  62. // Mask:AddSay(R,C,Text)
  63. // add say text into object
  64. //
  65. method function MaskAddSay(R,C,Text)
  66.   AAdd(::SayData,{R,C,Text})
  67.   return(true)
  68.  
  69.  
  70. //*****************************************************************************
  71. // Mask:AddBlock(R,C,cShortName,cVarName,bBlock,bDoGet,cPicture,bWhen,bValid)
  72. // default values for this object
  73. //
  74. method function MaskAddBlock(R,C,cShortName,cVarName,bBlock,bDoGet,cPicture,bWhen,bValid)
  75.   ::super(View):AddBlock(,cShortName,cVarName,bBlock,bDoGet,cPicture,bWhen,bValid)
  76.   AAdd(::GetData,{R,C})
  77.   return(true)
  78.  
  79.  
  80. //*****************************************************************************
  81. // Mask:AddMemo(R,C,cShortName,cField,bWhen,bValid,nRowSize,nColSize)
  82. // default values for this object
  83. //
  84. method function MaskAddMemo(R,C,cShortName,cField,bWhen,bValid,nRowSize,nColSize)
  85.   local Get
  86.   ::super(View):AddMemo(,cShortName,cField,bWhen,bValid,nRowSize,nColSize)
  87.   AAdd(::GetData,{R,C})
  88.   return(true)
  89.  
  90.  
  91. //*****************************************************************************
  92. // Mask:AddField(R,C,cShortName,cField,cPicture,bWhen,bValid)
  93. // default values for this object
  94. //
  95. method function MaskAddField(R,C,cShortName,cField,cPicture,bWhen,bValid)
  96.   local Get
  97.   ::super(View):AddField(,cShortName,cField,cPicture,bWhen,bValid)
  98.   AAdd(::GetData,{R,C})
  99.   return(true)
  100.  
  101.  
  102. //*****************************************************************************
  103. // Mask:MaskPaint() --> true
  104. // VPaint() for Mask
  105. //
  106. method function MaskMaskPaint()
  107.   local i,cg
  108.   local uns:=ListAsArray(::Color)[nUnSelect]
  109.   if !::Initialized
  110.     for i:=1 to Len(::GetData)
  111.       cg:=::GetList[i]:Cargo
  112.       cg[nRowOffset]:=::GetData[i,1]
  113.       cg[nColOffset]:=::GetData[i,2]
  114.     endfor
  115.     ::Initialized:=true
  116.   endif
  117.   AEval(::SayData,{|e|DevPos(::Row+e[1],::Col+e[2]),DevOut(e[3],::Color)})
  118.   AEval(::GetList,{|g| ;
  119.          DevPos(::Row+g:Cargo[nRowOffset],::Col+g:Cargo[nColOffset]),;
  120.          DevOut(Transform(g:VarGet(),g:Picture), uns) };
  121.        )
  122.   return(true)
  123.  
  124.  
  125. //*****************************************************************************
  126. // Mask:PostInit() --> true
  127. // PostInit() for Mask
  128. //
  129. method function MaskPostInit()
  130.    local R:=::Form:Row
  131.    local C:=::Form:Col
  132.    local Rs:=::Form:RowSize
  133.    local Cs:=::Form:ColSize
  134.    ::super(View):PostInit()
  135.    if ::FormActive
  136.      ::Row     := R    //Mask window cannot be "sizeable"
  137.      ::Col     := C
  138.      ::RowSize := Rs
  139.      ::ColSize := Cs
  140.      ::MaxRows := Rs
  141.      ::MaxCols := Cs
  142.      ::MinRows := Rs
  143.      ::MinCols := Cs
  144.    else
  145.      ::Form:Row     := R
  146.      ::Form:Col     := C
  147.      ::Form:RowSize := Rs
  148.      ::Form:ColSize := Cs
  149.      ::Form:MaxRows := Rs
  150.      ::Form:MaxCols := Cs
  151.      ::Form:MinRows := Rs
  152.      ::Form:MinCols := Cs
  153.    endif
  154.    return(true)
  155.  
  156. //------------------------------------------------------- eof (c)JHK ----------
  157.  
  158.